//
// Return value: a new object, containing the merged parameters from
// @params and @defaults
-function parse(params, defaults, allowExtras) {
- let ret = {}, prop;
-
- if (!params)
- params = {};
-
- for (prop in params) {
- if (!(prop in defaults) && !allowExtras)
- throw new Error('Unrecognized parameter "' + prop + '"');
- ret[prop] = params[prop];
- }
-
- for (prop in defaults) {
- if (!(prop in params))
- ret[prop] = defaults[prop];
+function parse(params = {}, defaults, allowExtras) {
+ if (!allowExtras) {
+ for (let prop in params)
+ if (!(prop in defaults))
+ throw new Error(`Unrecognized parameter "${prop}"`);
}
- return ret;
-}
\ No newline at end of file
+ return Object.assign(defaults, params);
+}